package com.sxpcwlkj.system.entity.vo;


import com.sxpcwlkj.common.annotation.Dict;
import com.sxpcwlkj.common.annotation.SensitivityEncrypt;
import com.sxpcwlkj.common.enums.SensitivityTypeEnum;
import com.sxpcwlkj.system.entity.SysUser;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @Name 系统用户
 * @Author 品创网络
 */

@Data
@AutoMapper(target = SysUser.class)
public class SysUserVo implements Serializable {

    private static final long serialVersionUID = 1L;
    /**
     * 主键ID
     */
    private Long userId;

    /**
     * 部门ID
     */
    private Long deptId;

    private Long[] deptIds;
    /**
     * 部门名称
     */
    private String department;
    /**
     * 岗位编号数组
     */
    private String postIds;

    /**
     * 用户账号
     */
    private String userName;

    /**
     * 用户昵称
     */
    private String nickName;

    /**
     * 用户类型
     */
    private String userType;

    /**
     * 邮箱
     */

    private String email;

    /**
     * 手机号
     */
    @SensitivityEncrypt(type = SensitivityTypeEnum.PHONE)
    private String phoneNumber;

    /**
     * 微信id
     */
    private String wxOpenid;

    /**
     * 微信开发者id
     */
    private String wxUnopenid;

    /**
     * 性别;0：保密 1：男2：女
     */
    @Dict("SYS_SEX")
    private String sex;

    /**
     * 头像
     */
    private String avatar;

    /**
     * 密码
     */
    private String password;

    /**
     * 状态;0正常 1停用
     */

    private String status;

    /**
     * 删除标志;0代表存在 2代表删除
     */
    private Integer delFlag;

    /**
     * 最后登录ip
     */
    private String loginIp;

    /**
     * 最后登录时间
     */
    private Date loginDate;
    /**
     * 对称性秘钥
     */

    private String aesKey;

    /**
     * 用户拥有角色
     */
    private List<SysRoleVo> roleVoList;
    /**
     * 用户角色集合
     */
    private String[] roleCodes;

    private String[] butCodes;
    /**
     * 角色ID
     */
    private Long roleId;
    /**
     * 角色编码
     */
    private String roleCode;
    /**
     * 角色id
     */
    private String roleName;

    private Date createdTime;

    private String remark ;
}
